Server bandwidth has been identified as a major bottleneck in large systems communicating content responsive to user demand, such as video on demand (VOD) systems. Dedicating a channel to each client quickly uses up server bandwidth and is non-scalable. To preserve server bandwidth, many users can share a channel using multicast.
There are two types of multicast: periodic broadcast and non-periodic multicast. In a periodic broadcast environment, the server does not wait for service requests. The server broadcasts content cyclically. In the case of video content, cyclical broadcast does not guarantee true VOD. Cyclical broadcasts do keep the worst service latency experienced by any client within a certain limit. In fact, the bandwidth requirement is independent of the number of subscribers to the system. However the benefit of periodic broadcast is limited to content that is frequently demanded such as popular videos.
For content that is not frequently demanded, such as videos which are not very popular, non-periodic multicast can be used. In a non-periodic multicast environment, users make content requests to a server; and the server serves them according to some scheduling policy. A technique referred to as patching allows a new incoming request to join an on-going multicast and therefore takes advantage of the same data stream. Non-periodic multicast approaches can provide true VOD service. However, such approaches, including those that adopt the patching technique, while providing a true VOD service may have a great data burst impact.